package org.yelongframework.baidu.aip.ocr.result;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;
import org.yelongframework.baidu.aip.result.AbstractAipResult;

/**
 * 默认实现
 * 
 * @since 1.0.0
 */
public class DefaultOcrAipResult extends AbstractAipResult implements OcrAipResult {

	// ==================================================构造器==================================================

	/**
	 * @param jsonObject JSON对象
	 */
	public DefaultOcrAipResult(JSONObject jsonObject) {
		super(jsonObject);
	}

	// ==================================================结果集==================================================

	@Override
	public List<OcrAipResultWordsResult> getWordsResult() {
		JSONArray jsonArray = getJsonObject().getJSONArray("words_result");
		int length = jsonArray.length();
		List<OcrAipResultWordsResult> ocrAipResultWordsResults = new ArrayList<>(length);
		for (int i = 0; i < length; i++) {
			JSONObject jsonObject = jsonArray.getJSONObject(i);
			ocrAipResultWordsResults.add(new DefaultOcrAipResultWordsResult(jsonObject));
		}
		return ocrAipResultWordsResults;
	}

	// ==================================================日志标识==================================================

	@Override
	public Long getLogId() {
		return getJsonObject().getLong("log_id");
	}

	// ==================================================结果数量==================================================

	@Override
	public Integer getWordsResultNum() {
		return getJsonObject().getInt("words_result_num");
	}

}
